<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>地理位置</title>
</head>
<body>
    <script>
        function checkGeolocation(fun){
           if(navigator.geolocation){
               fun();
           }
        }
        function getLocation(){
            /**
             * 获取到的地理信息对象
             * position：{
             *  coords：{
             *      latitude： 十进制的维度。
             *      longitude: 十进制的经度。
             *      altitude：表示位置的高度， 上方以米为单位指定 WGS84 ] 椭球。
             *      heading：行进方向 托管设备，以度为单位指定，其中 0° ≤ 航向 < 360°，相对于真北顺时针计数。
             *  }
             * }
             */
            //获取一次当前的地理消息
            checkGeolocation(function (){
                navigator.geolocation.getCurrentPosition(
                    succesPosition => {
                        const { latitude, longitude } = succesPosition.coords;
                        console.log(succesPosition.coords);
                        console.log(new Date(succesPosition.timestamp));
                    },
                    error => {
                        console.log(error);
                        if(error.code==1){
                            window.alert("用户不授予定位！");
                        }
                    }
                );
            });
        };
        getLocation();
        //实时获取当前的地理信息
        function realTimeGeoLocation(){
            checkGeolocation(function (){
                const watchId = navigator.geolocation.watchPosition(position => {
                    const { latitude, longitude } = position.coords;
                    // Show a map centered at latitude / longitude.
                });
            })
        };
        //停止实时获取当前的地理信息
        function stopRealTimeGeoLocation(){
            checkGeolocation(function (){
                const watchId = navigator.geolocation.watchPosition(
                    position => console.log(position)
                );
                //取消实时获取clearWatch
                function buttonClickHandler() {
                    navigator.geolocation.clearWatch(watchId);
                }
            });
        }
    </script>
</body>
</html>